このアクション、いまのポリシー設定で実行できる? IAM Policy Simulator でお手軽に確認しちゃおう
コンバンハ、千葉(幸)です。
IAM ポリシーを設計・設定したのちには、きちんと意図通りに動作するか確認したいものです。とはいえ、リソースに変更を加えるようなアクションはなかなかテストしづらいですよね。
テスト用のリソースを作ったり消したりして対応する場面も多いかと思いますが、それすら許容されないケースもあります。そんな時にあくまで机上での動作のシミュレートができるのが IAM Policy Simulator です。
使い方を確認していきましょう。
目次
- 目次
- IAM Policy Simulator の全体像
- IAM Policy Simulator へのアクセス方法
- IAM Policy Simulator に必要な権限
- IAM Policy Simulator のモード
- シミュレートするポリシーの設定方法
- グローバル条件キーの入力
- シミュレートの実行
- 終わりに
IAM Policy Simulator の全体像
以下のようなイメージです。
IAM Policy Simulator へのアクセス方法
以下のいずれかで可能です。いずれも、マネジメントコンソールにサインインしていることが前提であることに注意してください。
- 直接アクセス(https://policysim.aws.amazon.com/)
- サインアウトしている状態でアクセスすると、まずサインイン画面が表示されます
- IAM コンソールダッシュボードからアクセス
- IAM ロール もしくは ユーザーの画面からアクセス
- IAM グループの画面からアクセス
IAM コンソールダッシュボードからアクセスする場合はここからです。
IAM ロールもしくはユーザーの場合、アタッチされているポリシーを展開することでシミュレータへの遷移ボタンが表示されます。当該ポリシーを選択した状態から始まります。
IAM グループの場合、アタッチされている IAM ポリシーの画面から遷移できます。ただ、ここで選択したポリシーはシミュレータで選択されているわけではありません。(ここから飛べる嬉しさがよく分かっていません。)
IAM Policy Simulator に必要な権限
各 IAM リソースにアタッチされているポリシーやその中身、あるいはリソースに設定されているポリシーなどをシミュレートするために、それらに対する参照権限が必要です。
実際にアクションを起こすわけではないので、「シミュレートしたいアクション」に対する権限は不要です。
詳細は以下を確認してください。
IAM Policy Simulator の使用に必要なアクセス許可
IAM Policy Simulator のモード
シミュレータでは以下のモードを切り替えることができます。
- Exiting Policies(既存の IAM リソースにアタッチされているポリシーを使用)
- New Policy(シミュレート用のポリシーを新規作成)
モードによって、シミュレートする際の各種ポリシーの設定可否が異なります。「●」が設定できること、「×」が設定できないことを表します。
項目 | 概要 | Exiting Policies | New Policy |
---|---|---|---|
AWS Organizations SCPs | アカウントが Organizations に所属している場合、適用されている SCP | ● | × |
IAM Policies | ユーザー/グループ/ロールにアタッチされているポリシー | ● | × |
Custom IAM Policies | シミュレート用に作成するポリシー | ● | ● |
Permissions Boundary Policy | ユーザー/ロールにセットされているアクセス権限の境界 | ● | × |
Custom IAM Permissions Boundary Policy | シミュレート用に作成するアクセス権限の境界 | ● | ● |
Resource Policies | アクションの対象のリソースに適用されているポリシー | ● | ● |
シミュレートするポリシーの設定方法
画面左側のペインでポリシーを設定する際の手順を見ていきます。
モードがExiting Policiesの場合は以下のようなイメージです。
まず、ユーザー、グループ、ロールの種別を選択し、種別ごとに表示される一覧から、確認したいものを個別に選択します。
個別に選択した IAM リソースについて、設定するポリシーが表示されるようになります。
New Policyモードを選択した場合は、上記のような選択のプロセスがなく、以下のような画面となります。
以降の説明では、 Exiting Policies モードの画面で確認していきます。
AWS Organizations SCPs
シミュレートに使用している AWS アカウントが Organizations のメンバーアカウントであり、影響する SCP が設定されている場合には、このペインに表示されます。(下記例では何も表示されていない状態です。)有効/無効を切り替えることもできます。
IAM Policies、Permissions Boundary Policy
選択した IAM リソースに設定されている IAM ポリシー、アクセス権限の境界が表示されます。個々にポリシーの有効/無効が選択できるほか、個々のポリシーを編集することもできます。
ここでの編集はあくまでシミュレータ用の編集であり、実際の AWS リソースに変更を加えることはないことをご留意ください。
Custom IAM Policies、Custom IAM Permissions Boundary Policy
シミュレータ用にカスタムのポリシーを作成することができます。[ Create New Policy ]を押下します。
以下のような作成画面に遷移するため、必要な情報を入力しカスタムポリシーを作成します。あくまでシミュレータ上で有効なものになります。
作成したカスタムポリシーは以下のようにペインに表示されます。
Resource Policies
IAM に適用するポリシーではなく、リソースに適用するポリシーを選択します。 S3 のバケットポリシーや、 SNS のトピックポリシーなどが該当します。
このポリシーは、画面右側の操作で入力することになります。サービス・アクションを選択すると、アクション一覧が画面下部に表示されます。
アクションに対応しているリソースタイプがある場合、ARNを入力できる欄があります。さらにそのリソースがリソースベースポリシーに対応している場合、[ Include Resource Policy ]にチェックを入れることで、対象のリソースベースポリシーを選択したことになります。
いずれか一つのアクションで入力するだけで自動的に他のアクションにも適用されます。
左側のペインでは以下のように表示されます。 JSON で内容を確認することはできますが、シミュレータ上で編集することはできません。
グローバル条件キーの入力
上記で指定したポリシーの中にグローバル条件キーが含まれている場合、値を入力してシミュレートすることができます。
ec2:
や s3:
といったサービス固有の条件キーはここに入力することはできません。
シミュレートの実行
ここまで見てきたような設定可能な項目として以下があります。
- ポリシーの設定
- 対象のアクションの選択
- 対象のアクションに紐づくリソースの ARN の指定
- グローバル条件キーの入力
これらを必要に応じて入力した上で[ Run Simulatuon ]を押下することで、シミュレートが実行されます。
以下のように、アクションごとに結果が表示されます。指定した条件でアクションが実行できる状態であれば allowed
、権限が不足していれば denied
が表示されます。
allowed
の結果になったものについては、アクションの詳細画面から、どのポリシーのどのステートメントが該当するかを確認することができます。
シミュレータを動かすのはどんな場面でもワクワクしますね。
終わりに
IAMPolicy Simulator の使い方について確認しました。
タイトルで「お手軽に」と書いてしまいましたが、ある程度前提知識がないと使いこなすのは難しいかもしれません。
実際の環境で動作確認できるに越したことはないですが、それが難しいケースもあります。シミュレータで担保できる部分を見極めた上で、選択肢の一つとしてご活用ください。
以上、千葉(幸)がお送りしました。